//package com.bstek.bdf2.protal.home;
//
//import java.util.ArrayList;
//import java.util.Collection;
//import java.util.List;
//import java.util.Map;
//
//import com.bstek.dorado.calendar.Calendar;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.stereotype.Service;
//import org.springframework.util.CollectionUtils;
//
//import com.bstek.bdf2.core.CoreJdbcDao;
//import com.bstek.bdf2.core.business.IUser;
//import com.bstek.bdf2.core.context.ContextHolder;
//import com.bstek.dorado.annotation.Expose;
//import com.bstek.dorado.common.event.ClientEvent;
//import com.bstek.dorado.view.View;
//import com.bstek.dorado.view.widget.Container;
//import com.bstek.dorado.view.widget.base.DatePicker;
//import com.bstek.dorado.view.widget.base.Panel;
//import com.bstek.dorado.view.widget.form.Image;
//import com.bstek.dorado.view.widget.form.Link;
//import com.bstek.dorado.view.widget.portal.Column;
//import com.bstek.dorado.view.widget.portal.Portal;
//import com.bstek.dorado.view.widget.portal.Portlet;
//
///**
//
//*@author created by zxq
//
//*@date 2022年7月13日---下午6:55:50
//
//*@problem
//
//*@answer
//
//*@action 如何动态的生成portles的Panel呢?
//*         1、根据用户关联的角色或者部门信息得到role_id，
//*         2、获取到角色或者部门的ID后，去MES_HOME_MANAGEL表中获取到对应有的几块Panle，
//*         3、在根据MES_HOME_MANAGEL表的配置样式信息，生成view试图的Columns每一个Column和Portlets的每一个Panel
//*         从而实现不同的用户看到不同的门户首页？
//*
//
//*/
//
//@Service(HomeProtalListenter.BEAN_ID)
//public class HomeProtalListenter extends CoreJdbcDao  {
//
//
//
//	public static final String BEAN_ID="mes.HomeProtalListenter";
//
//	private final Logger logger = LoggerFactory.getLogger(HomeProtalListenter.class);
//
//
//
//
//	/**
//	 * mes.HomeProtalListenter#onViewInit
//	 * @param view
//	 */
//	public void onViewInit(View view) {
//		view.setTitle("测试");
// 		view.addClientEventListener("onReady",new ClientEvent() {
//
//
//			@Override
//			public String getScript() {
//				// TODO Auto-generated method stub
//				return null;
//			}
//		});
//
//	}
//	public static void main(String[] args) {
//		int a=5;
//		System.out.println(0%a);
//		System.out.println(1%a);
//		System.out.println(2%a);
//		System.out.println(3%a);
//		System.out.println(4%a);
//		System.out.println(5%a);
//		System.out.println(6%a);
//		System.out.println(7%a);
//		System.out.println(8%a);
//		System.out.println(9%a);
//
//
//
//	}
//
//	/**
//	 * spring:mes.HomeProtalListenter#onProtalInit
//	 * @param protal
//	 */
//	public void onProtalInit(Portal protal) {
//		logger.info("开始动态的构建Portal...............");
////		protal = getPortal(protal);
//		createPt(protal);
//
//
//		logger.info("结束动态的构建Portal...............");
//	}
//
//	private Portal getPortal(Portal protal) {
//		ArrayList<Map<String, Object>> list = (ArrayList<Map<String, Object>>) queryPortlets();
//		if(CollectionUtils.isEmpty(list)) {
//			new RuntimeException("构建Portal的信息没有在数据库获取到,请检查相关的配置信息是否存在！");
//		}
//		//样式，比如是三列还是二列？这个样式不统一的话怎么弄？不能存在既有二列也有三列的首页吧？校验让它不存在这种样式？
//		String playout = (String)list.get(0).get("PORTLET_LAYOUT");
//		//这个样式值只能是固定的不能可变的，在一个集合不能存在有3又有2这样的话样式会乱了吧。。。
//		String[] widths=new String[] {(String)list.get(0).get("PORTLET_COLUMN1"),
//				(String)list.get(0).get("PORTLET_COLUMN2"),
//				(String)list.get(0).get("PORTLET_COLUMN3")
//		};
//		//Integer.valueOf(playout);
//		int of = 3;
//		protal = createColumns(protal,playout,widths);
//		logger.info("取模的固定值是{},取的集合的长度是{}",of,list.size());
//		for (int i = 0; i < list.size(); i++) {
//			//集合长度取模得到Column所处位置
//			int place=i%of;
//		   Map<String, Object> map = list.get(i);
//		   //caption名称
//		   String caption = (String) map.get("PORTLET_NAME");
//		   Portlet pt = new Portlet();
//		   //caption名称
//		   pt.setCaption(caption);
//		   //是否能关闭
//		   pt.setCloseable(true);
//		   //对应列所在的位置
//		   pt.setColumn(place);
//		   protal.addPortlet(pt);
//	   }
//		return protal;
//	}
//
//	private void createPt(Portal protal) {
//		String[] widths= new String[] {"33%","*","33%"};
//		protal=createColumns(protal, "3", widths);
//
//
//		Portlet portlet = new com.bstek.dorado.view.widget.portal.Portlet();
// 		portlet.setCaption("工作日历");
//		portlet.setCloseable(true);
//		portlet.setColumn(0);
//  		Container container = new Container();
//		DatePicker dp = new DatePicker();
//		container.addChild(dp);
// 		portlet.addChild(container);
//		protal.addPortlet(portlet);
//
//		Portlet portlet2 = new com.bstek.dorado.view.widget.portal.Portlet();
//		portlet2.setCaption("图片新闻");
//		portlet2.setCloseable(true);
//		portlet2.setColumn(1);
//
//		Container container2 = new Container();
//		 Image image = new Image();
//		 image.setImage(">dorado/res/com/bstek/bdf2/protal/first.png");
//		 container2.addChild(image);
//		 portlet2.addChild(container2);
//
//		protal.addPortlet(portlet2);
//
//		/**
//		 * Portlets
//		 *    Panel
//		 *       Children
//		 *          Container
//		 *            {
//		 *              1、Link
//		 *              2、HtmlContainer
//		 *              3、......
//		 *            }
//		 *
//		 *
//		 *
//		 */
//
//		Portlet portlet3 = new com.bstek.dorado.view.widget.portal.Portlet();
//		portlet3.setCaption("会议纪要");
//		portlet3.setCloseable(true);
//		portlet3.setColumn(2);
//		//创建面板控件,不创建也没有啥影响
////		Panel panel3 = new Panel();
////		panel3.setCaption("Panel的标题");
////		panel3.setCloseable(true);
//
//		// 创建容器Container
//		Container container3 = new Container();
//		//创建链接控件，设置一些属性
//		Link link = new Link();
//		link.setHref("#");
//		link.setText("1234561321321");
//		//将链接控件添加到容器里去
// 		container3.addChild(link);
//
// 		portlet3.addChild(container3);
//
//		protal.addPortlet(portlet3);
//
//	}
//
//
//	/**
//	 *  创建Portal的Column信息
//	 * @param protal
//	 * @param playout
//	 * @param object
//	 * @return
//	 */
//	private Portal createColumns(Portal protal,String playout, String[] widths) {
//
//		for (int i = 0; i < Integer.valueOf(playout); i++) {
//			Column column = new Column();
//			//好像是设置css的样式？
//			column.setClassName(null);
//			//这个Column是否是忽略的？默认false
//			column.setIgnored(false);
//			//Column的宽度占比
//			column.setWidth(widths[i]);
//			//Column的标签
//			column.setTags("A");
//			//将column对象添加到Portal对象里去
//			protal.addColumn(column);
//		}
//
//		return protal;
//
//	}
//
//
//
//
//
//
//
//
//	/**
//	 *  获取构建Columns和Portlets信息
//	 * @return
//	 */
//	private Collection<Map<String, Object>> queryPortlets() {
// 		IUser user = ContextHolder.getLoginUser();
//		String userName = user.getUsername();
//		// 是否为系统管理员
//		logger.info("当前登录的名是{},是否为系统管理员{}", userName, user.isAdministrator());
//		if (user.isAdministrator()) {
//			userName=null;
//		}
//		return queryDataByName(userName);
//
//	}
//
//	/**
//	 * 根据登录用户获取不同的首页信息
//	 * @param userName
//	 * @return
//	 * mes.HomeProtalListenter#queryDataByName
//	 */
//	@Expose
//	public List<Map<String, Object>>  queryDataByName(String userName){
//		if(userName==null) {
//
//			String sql = "SELECT 	t4.PORTLET_NAME,\n" +
//					"	t4.PORTLET_LAYOUT,\n" +
//					"	t4.PORTLET_ORDER,\n" +
//					"	t4.PORTLET_COLUMN1,\n" +
//					"	t4.PORTLET_COLUMN2,\n" +
//					"	t4.PORTLET_COLUMN3,\n" +
//					"	t4.PORTLET_TYPE,\n" +
//					"	t4.ROLE_ID \n" +
//					"   FROM  MES_HOME_MANAGEL t4 order by  t4.PORTLET_ORDER ";
//			return this.getJdbcTemplate().queryForList(sql);
//		}
//		String sql ="SELECT\n" +
//				"	t3.PROTAL_ID,\n" +
//				"	t2.DEPT_ID_,\n" +
//				"	t2.USERNAME_,\n" +
//				"	t4.PORTLET_NAME,\n" +
//				"	t4.PORTLET_LAYOUT,\n" +
//				"	t4.PORTLET_ORDER,\n" +
//				"	t4.PORTLET_COLUMN1,\n" +
//				"	t4.PORTLET_COLUMN2,\n" +
//				"	t4.PORTLET_COLUMN3,\n" +
//				"	t4.PORTLET_TYPE,\n" +
//				"	t4.ROLE_ID,\n" +
//				"	t4.PORTLET_NAME \n" +
//				"   FROM \n" +
//				"	MES_ROLE_PROTAL t3\n" +
//				"	INNER JOIN BDF2_USER_DEPT t2\n" +
//				"	INNER JOIN MES_HOME_MANAGEL t4 ON t3.ROLE_ID = t2.DEPT_ID_ \n" +
//				"	AND t4.ID = t3.PROTAL_ID \n" +
//				"   WHERE 1=1 \n" +
//				"	and t2.USERNAME_ = ?  order by  t4.PORTLET_ORDER ";
//		 List<Map<String, Object>> list = this.getJdbcTemplate().queryForList(sql,new Object[]{userName});
// 		 return list;
//	}
//
//
//
//
//
//
//
//}
